from django.db import models
from django.contrib.auth.models import User

# Create your models here. 导入自带的数据模型，我们只需要继承它创建自己的数据模型

class Topic(models.Model): #可以认为是一个数据表
    ''' 用户学习的主题 '''
    text = models.CharField(max_length=200) #设置一个字段text
    date_added = models.DateTimeField(auto_now_add=True) #时间日期字段 并且字段填充为当前时间
    owner = models.ForeignKey(User)
    def __str__(self):
        return "<Topic%s>"%self.text

class Entry(models.Model):
    ''' 学到有关某个主题的具体知识 '''

    #多对一 多个条目关联到同一个主题(因为一个主题有多个不同的知识条目) 
    #对于每个Topic实例t都有一个属性 entry_set entry_set.all()可以获取到所有条目
    topic = models.ForeignKey(Topic) 
    text = models.TextField()
    date_added = models.DateTimeField(auto_now_add=True)

    class Meta:
        verbose_name_plural = 'entries' #这个是admin里面的名称

    def __str__(self):
        ''' 返回模型的字符串表示 '''
        max_show = 50
        return self.text[:50] + '...'  if len(self.text)>max_show else self.text

class Blog(models.Model):
    title = models.CharField(max_length=30)
    content = models.TextField()
    date_added = models.DateTimeField(auto_now_add=True)
    owner = models.ForeignKey(User)
    tags = models.CharField(max_length=20)
    class Meta:
        verbose_name_plural = 'blogs' #这个是admin里面的名称

    @property
    def title_short(self):
        max = 15
        return self.title if len(self.title)<=max else self.title[0:max-3]+'...'

            

    @property
    def tag_arr(self):
        return str(self.tags).split(',')

    def __str__(self):
        return self.title


